1. Technical Field
The present invention relates generally to an improved data processing system and method. In particular, the present invention provides a system and method for test generation for system level verification using parallel algorithms.
2. Description of Related Art
While known mechanisms for validating the operation of individual devices tend to provide adequate results for validating these devices, traditional approaches to system level validation suffer from a number of problems. These problems stem from the fact that traditional approaches to system level validation are basically attempts to extend the individual unit validation approaches to a system level. These traditional approaches of extending individual unit level validation methods to a system level in which many different units are operating together and often simultaneously, do not provide adequate results for determining valid operation of the system as a whole because they do not scale in a tractable algorithmic fashion.
For example, many researchers today are refining techniques to generate test vectors based on constraint solving abstract models of real systems. This approach derives from processor validation where the models can be expanded to include as much architecture detail as a user can tolerate to provide in the time available. This technology derives interesting scenarios by solving constraints over state variables. However, the required amount of system information that is necessary for this approach grows exponentially over the state space and becomes more complex. Thus, these algorithms do not scale, creating streams of long test vectors that attack state space deep in the design and become non-tractable. Alternatively, in an effort to minimize this complexity and exponential growth, these algorithms may become too abstract to adequately exercise system level transactions in a scenario where the processors are doing work that presents the possibility for contention.
An alternative approach also often employed for system validation is to debug the system using application software. The signature of the debug tests can be used for performance determinations. However, debugging requires intimate knowledge of the behavior of the system and the software operating in the system. While this can be obtained with reference models, the data patterns can not be tailored for quick debug.